//演示类型兼容性
let arr = ['a','b','c']
// callback回调函数发生了类型兼容性
//只有item一个参数,callback回调需要3个,却没有报错,是因为发生了类型兼容
arr.forEach(item => {})
arr.forEach((item,index) => {})
arr.forEach((item,index,array) => {})

class Point {x:number; y: number}

class Point2 {x:number; y: number}


const p:Point = new Point2()

// 1.Point和Point2是2个名称不同的类
// 2.变量p的类型被标注为Point类型,但它的值却是Point2的实例,且没有类型错误
// 3.因为ts是结构化类型系统,只检查Point和Point2的结构是否相同
// 4.在标明类型系统(c#,java),它们是不同的类,无法兼容













